#include "mainwindow.h"

#include <QApplication>
#include <QLocale>
#include <QTranslator>
#include <QThread>
#include "splashscreen.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    // 创建并显示启动界面
    SplashScreen splash;
    splash.show();

    // 模拟加载过程, 后续加载插件过程
    for (int i = 0; i <= 100; ++i) {
        // 更新进度
        splash.setProgress(i);

        // 根据加载阶段更新状态信息
        if (i < 30) {
            splash.setStatusText("初始化应用程序...");
            // 模拟加载延迟
            QThread::msleep(1);
        } else if (i < 60) {
            splash.setStatusText("加载模块...");
            // 模拟加载延迟
            QThread::msleep(1);
        } else if (i < 90) {
            QTranslator translator;
            const QStringList uiLanguages = QLocale::system().uiLanguages();
            for (const QString &locale : uiLanguages) {
                const QString baseName = "CodeMaster_" + QLocale(locale).name();
                if (translator.load(":/i18n/" + baseName)) {
                    a.installTranslator(&translator);
                    break;
                }

            }

            splash.setStatusText("准备界面...");
            // 模拟加载延迟
            QThread::msleep(1);
        } else {
            splash.setStatusText("加载完成!");
            // 模拟加载延迟
            QThread::msleep(1);
        }

        // 处理事件，确保界面更新
        a.processEvents();


    }
    splash.hide();


    MainWindow w;
    w.show();
    return a.exec();
}
